const REG = {
    username: /^[\da-zA-Z_]{2,20}$/,
    password: /^(?=.*\d)(?=.*[a-zA-Z])(?=.*[\W_]).{8,}$/,
    verifyCode: /^\w{4}$/,
    phone: /^[1][3,4,5,7,8][0-9]{9}$/,
    int: /^[0-9]*$/,
    email: /^([a-zA-Z0-9_-])+@([a-zA-Z0-9_-])+(\.([a-zA-Z0-9_-])+)+$/,
    tel: /^0\d{2,3}-?\d{7,8}$/,
    mobile: /^1\d{10}$/,
    text: /^[a-zA-Z0-9\u4e00-\u9fa5]+$/,
    cnText: /^[\u4e00-\u9fa5]+$/,
    card: /^[1-9]\d{5}[1-9]\d{3}((0\d)|(1[0-2]))(([0|1|2]\d)|3[0-1])\d{3}([0-9]|X)$/,
    filePostfix: /\.(bmp|jpg|png|docx|doc|xls|xlsx|csv|ppt|pdf|rar|zip)$/,
    ip: /^(1\d{2}|2[0-4]\d|25[0-5]|[1-9]\d|[1-9])(\.(1\d{2}|2[0-4]\d|25[0-5]|[1-9]\d|\d)){3}$/
};

/**
 * validator校验
 */

/**
 * 输入用户名的校验
 * */
export function validateUsername (val) {
    let re = REG.username; // 2-20个字符，需做唯一性性校验，仅允许输入字母、数字、下划线需做唯一性性校验，仅允许输入字母、数字、下划线
    return re.test(val);
}

/**
 * 输入密码的校验
 * */
export function validatePwd (val) {
    let re = REG.password; // 8-20  数字+字符+字母
    return re.test(val);
}

/**
 * 输入验证码(注册页面)的校验
 * */
export function validaCode (val) {
    let re = REG.verifyCode; // 四位数
    return re.test(val);
}

/**
 * 输入手机号的校验
 * */
export function validatePhone (val) {
    let re = REG.phone;
    return re.test(val);
}

/**
 * 输入整数的校验
 * */
export function validateInt (val) {
    let re = REG.int;
    return re.test(val);
}

/**
 * 输入邮箱的校验
 * */
export function validateEmail (val) {
    let re = REG.email; // (字母、数字、下划线、-、. )@(字母、数字、-)
    return re.test(val);
}

/**
 * 输入座机的校验
 * */
export function validateTel (val) {
    let re = REG.tel; // 0开头2~3位区号，可以加-（也可不加），加上7~8位数字
    return re.test(val);
}

export function validateMobile (val) {
    let re = REG.mobile; // 1开头的11位数字
    return re.test(val);
}

/**
 * 不允许输入特殊字符
 * */
export function validateText (val) {
    let re = REG.text;
    return re.test(val);
}

/**
 * 输入身份证号的校验
 * */
export function validateCard (val) {
    let re = REG.card;
    return re.test(val);
}

/**
 * 文件后缀名验证
 * */
export function validateFilePostfix (val) {
    let re = REG.filePostfix;
    return re.test(val);
}

/**
 * ip合法性验证
 * */
export function validateIP (val) {
    let re = REG.ip;
    return re.test(val);
}

export default {
    ...REG
};
